#ifndef AXIS_H_INCLUDED
#define AXIS_H_INCLUDED

#include "BasicObject.h"

class CartesianAxis : public BasicObject
{
	Coordinates origin;
	Direction x,y,z;
	public:

	void construct(std::vector<BasicObject*> &list);
	Coordinates evaluateParameters(std::vector<BasicObject*> parents, std::vector<Parameter> parameters);
	~CartesianAxis();

};

class CylindricalAxis : public BasicObject
{
	Coordinates origin;
	Direction x,z;
	public:

	void construct(std::vector<BasicObject*> &list);
	Coordinates evaluateParameters(std::vector<BasicObject*> parents, std::vector<Parameter> parameters);
	~CylindricalAxis();

};

class SphericalAxis : public BasicObject
{
	Coordinates origin;
	Direction x,z;
	public:

	void construct(std::vector<BasicObject*> &list);
	Coordinates evaluateParameters(std::vector<BasicObject*> parents, std::vector<Parameter> parameters);
	~SphericalAxis();
};

#endif // AXIS_H_INCLUDED
